package com.jsaas.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;

import com.jfinal.plugin.redis.Redis;
import com.jsaas.core.security.OnlineSessionDao;
import com.jsaas.core.security.UserPrincipal;

/**   
* @Title: ShiroUtils.java 
* @Package com.jsaas.utils 
* @Description: TODO(用一句话描述该文件做什么) 
* @author tuozq 
* @date 2017年11月3日 下午4:47:59 
* @version V1.0   
*/
public class ShiroUtils {
	
	/**
	 * 判断是否登录
	 * @return
	 */
	public static boolean isLogin(){
		return SecurityUtils.getSubject().isAuthenticated();
	}
	
	/**
	 * 获取当前登录用户信息
	 * @return
	 */
	public static UserPrincipal getCurUser(){
		if(isLogin()){
			return (UserPrincipal) SecurityUtils.getSubject().getPrincipal();
		}else{
			return null;
		}
		
	}
	
	public static List<Session> getActiveSessions(){
		Set<String> keys = Redis.use().getJedis().keys(OnlineSessionDao.cacheNamePrefix + "*");
		List<Session> sessions = new ArrayList<Session>();
		for (String key : keys) {
			sessions.add((Session)SerializeUtils.deserialize((byte[])Redis.use().get(key)));
		}
		return sessions;
	}
}
